Method and apparatus to provision a network appliance

ABSTRACT

A method and apparatus to provision a network node such as a network appliance is described.

BACKGROUND

[0001] A network typically comprises a plurality of network nodesconnected together by a communications medium. A network node maycomprise, for example, a switch, router, personal computer, server,network appliance or any other network device. Each time a network nodeis connected to a network, the network node may need to be configuredwith some network information, such as a network address, control codesand so forth. This is typically performed using an input device attachedto the network node, such as a keyboard, a keypad, a touch pad, a touchscreen, a pointing device and so forth.

[0002] Conventional input devices for use with a network node, however,may be unsatisfactory for a number of reasons. For example, in manyinstances the network nodes may be located within a relatively confinedarea, such as a vertical storage rack. This minimizes the amount ofavailable space for use of conventional input devices. Further, someconventional input devices may require a user to enter a significantamount of information to configure each network node. This may occur,for example, whenever the input device uses a limited number of physicalkeys and a hierarchical menu structure. The user may have to traversemany levels of the menu structure to enter the desired networkinformation. This may be tedious and time-consuming work, particularlyif a relatively large number of network nodes require suchconfiguration.

BRIEF DESCRIPTION OF THE DRAWINGS

[0003] The subject matter regarded as embodiments of the invention isparticularly pointed out and distinctly claimed in the concludingportion of the specification. Embodiments of the invention, however,both as to organization and method of operation, together with objects,features, and advantages thereof, may best be understood by reference tothe following detailed description when read with the accompanyingdrawings in which:

[0004]FIG. 1 is a front view of a network node suitable for use with oneembodiment of the invention.

[0005]FIG. 2 is a block diagram of an input system in accordance withone embodiment of the invention.

[0006]FIG. 3 is a block flow diagram of operations performed by an inputdevice in accordance with one embodiment of the invention.

DETAILED DESCRIPTION

[0007] In the following detailed description, numerous specific detailsare set forth in order to provide a thorough understanding of theembodiments of the invention. It will be understood by those skilled inthe art, however, that the embodiments of the invention may be practicedwithout these specific details. In other instances, well-known methods,procedures, components and circuits have not been described in detail soas not to obscure the embodiments of the invention.

[0008] The embodiments of the invention comprise a method and apparatusto enter information into a network node, such as a switch, router,personal computer, server, network appliance or any other networkdevice. In one embodiment of the invention, the network node may be anetwork appliance that may operate with an input device. The term “inputdevice” as used herein may refer to any hardware or software used toenter information into a network node. In one embodiment of theinvention, the input device may comprise, for example, an activationcomponent, a microphone, a display, and software components to include aconfiguration component and a speech recognition component.

[0009] In one embodiment of the invention, a user may initiate theentering of information into a network node by selecting a parameterusing the activation component. The term “activation component” as usedherein may refer to hardware or software used to select a parameter. Theterm “parameter” as used in this context may comprise a set ofinformation for use by the network node, such as a network address, adevice name, one or more control codes, a unique device identifier, apass code, security information, and any other information needed by thenetwork node to perform its intended function. In one embodiment of theinvention, the activation component may be a button. A user may select adesired parameter by pressing the button a predetermined number oftimes. In other words, each parameter may be assigned to a predeterminednumber of button presses. For example, assume a network addressparameter corresponds to three button presses. The user could press thebutton three times and select the network address parameter forconfiguration. Once the desired parameter is selected, the user may thenprovide a value for the parameter. The term “value” as used herein mayinclude any combination of numbers, letters and symbols comprising a setof information for a parameter. In the above example using a networkaddress parameter, the value may be a network address. The user mayprovide the value by verbally speaking the value into the microphone.The microphone may receive the analog voice signals generated by theuser, and use the speech recognition software to determine the valuefrom the analog voice signals. The value may be sent to the visualdisplay for visual confirmation. The confirmed value may then beassociated and stored with the selected parameter.

[0010] It is worthy to note that any reference in the specification to“one embodiment” or “an embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the invention. The appearancesof the phrase “in one embodiment” in various places in the specificationare not necessarily all referring to the same embodiment.

[0011] Referring now in detail to the drawings wherein like parts aredesignated by like reference numerals throughout, there is illustratedin FIG. 1 a system suitable for practicing one embodiment of theinvention. FIG. 1 is a front view of a network node suitable for usewith one embodiment of the invention. FIG. 1 illustrates a network node100 comprising a display 102, a button 104 and a microphone 106. It canbe appreciated, however, that these elements are shown as an example andare not meant to limit the embodiments of the invention. Additionalconfigurations incorporating additional elements, removing elements, orcombining different elements may be used and still fall within the scopeof the invention. For example, in one embodiment of the invention aplurality of buttons may be used with the input device.

[0012]FIG. 2 is a block diagram of a system in accordance with oneembodiment of the invention. As shown in FIG. 2, an input system 200 maycomprise a processor 202, an input/output (I/O) adapter 204, an operatorinterface 206, a memory 210 and a disk storage 218. Memory 210 may storecomputer program instructions and data. The term “program instructions”may include computer code segments comprising words, values and symbolsfrom a predefined computer language that, when placed in combinationaccording to a predefined manner or syntax, cause a processor to performa certain function. Examples of a computer language may include Java, C,C++ and assembly. Processor 202 executes the program instructions, andprocesses the data, stored in memory 210. Disk storage 218 stores datato be transferred to and from memory 210. I/O adapter 204 communicateswith other devices and transfers data in and out of the computer systemover connection 224. Examples of other devices may include a microphoneand display, such as microphone 106 and display 102, respectively.Operator interface 206 may interface with a system operator by acceptingcommands and providing status information. All these elements areinterconnected by bus 208, which allows data to be intercommunicatedbetween the elements.

[0013] Processor 202 can be any type of processor capable of providingthe speed and functionality required by the embodiments of theinvention. For example, processor 202 could be a processor from familyof processors made by Intel Corporation, Motorola Incorporated, SunMicrosystems Incorporated, Compaq Computer Corporation and others.Processor 202 may also comprise a digital signal processor (DSP) andaccompanying architecture, such as a DSP from Texas InstrumentsIncorporated.

[0014] In one embodiment of the invention, memory 210 and disk storage218 may comprise a machine-readable medium and may include any mediumcapable of storing instructions adapted to be executed by a processor.Some examples of such media include, but are not limited to, read-onlymemory (ROM), random-access memory (RAM), programmable ROM, erasableprogrammable ROM, electronically erasable programmable ROM, dynamic RAM,magnetic disk (e.g., floppy disk and hard drive), optical disk (e.g.,CD-ROM) and any other media that may store digital information. In oneembodiment of the invention, the instructions are stored on the mediumin a compressed and/or encrypted format. As used herein, the phrase“adapted to be executed by a processor” is meant to encompassinstructions stored in a compressed and/or encrypted format, as well asinstructions that have to be compiled or installed by an installerbefore being executed by the processor. Further, client 200 may containvarious combinations of machine-readable storage devices through variousI/O controllers, which are accessible by processor 202 and which arecapable of storing a combination of computer program instructions anddata.

[0015] Memory 210 is accessible by processor 202 over bus 208 andincludes an operating system 216, a program partition 212 and a datapartition 214. In one embodiment of the invention, operating system 216may comprise an operating system (OS) sold by Microsoft Corporation,such as Microsoft Windows® 95, 98, 2000 and NT, Sun Microsystems Inc.and Virginia Linux Systems, Inc., for example. Program partition 212stores and allows execution by processor 202 of program instructionsthat implement the functions of each respective system described herein.Data partition 214 is accessible by processor 202 and stores data usedduring the execution of program instructions.

[0016] In one embodiment of the invention, program partition 212contains program instructions that will be collectively referred toherein as a configuration component and a speech recognition component.Although this embodiment of the invention uses two components, it can beappreciated that the functionality performed by these components may becombined into fewer components, or separated into additional components,and still fall within the scope of the invention.

[0017] I/O adapter 204 may comprise a network adapter or networkinterface card (NIC) configured to operate with any suitable techniquefor controlling communication signals between computer or networkdevices using a desired set of communications protocols, services andoperating procedures, for example. In one embodiment of the invention,I/O adapter 204 may operate, for example, in accordance with theTransmission Control Protocol (TCP) as defined by the InternetEngineering Task Force (IETF) standard 7, Request For Comment (RFC) 793,adopted in September, 1981, and the Internet Protocol (IP) as defined bythe IETF standard 5, RFC 791, adopted in September, 1981, both availablefrom “www.ietf.org”, although the embodiments of the invention are notlimited to this context. I/O adapter 204 also includes appropriateconnectors for connecting I/O adapter 204 with a suitable communicationsmedium. I/O adapter 204 may receive communication signals over anysuitable medium such as copper leads, twisted-pair wire, co-axial cable,fiber optics, radio frequencies, and so forth.

[0018] The operations of systems 100 and 200 may be further describedwith reference to FIG. 3 and its accompanying examples. Although FIG. 3as presented herein may include a particular processing logic, it can beappreciated that the processing logic merely provides an example of howthe general functionality described herein can be implemented. Further,each operation within a given processing logic does not necessarily haveto be executed in the order presented unless otherwise indicated.

[0019]FIG. 3 is a block flow diagram of the programming logic performedby an input system in accordance with one embodiment of the invention.As shown in FIG. 3, a parameter may be selected at block 302. An exampleof a parameter may include a network address. The network address maybe, for example, an IP address in accordance with the TCP/IPSpecification. An analog voice signal having a value for the parametermay be received at block 304. The analog voice signal may comprise, forexample, the words, numbers and phrases spoken by a human. The value maybe determined from the analog voice signal at block 306. This may beperformed by, for example, the speech recognition component of inputsystem 200. The determined value may be associated with the selectedparameter and stored in memory.

[0020] The selecting performed at block 302 may be accomplished a numberof different ways. For example, input system 200 may include anactivation component that is used to select a parameter. In oneembodiment of the invention, the activation component may comprise abutton such as button 104. Input system 200 may receive a signal foreach time the button is pressed or activated. Each press of the buttonmay generate a signal. Input system 200 may keep a count of the numberof times the signal is received, and select the parameter correspondingto the number. Additional examples of an activation component mayinclude, for example, any type of selection device, such as a pluralityof buttons, switches, knobs, rotation devices, touch screen, touch padand so forth.

[0021] In one embodiment of the invention, the activation component mayinclude the speech recognition module to retrieve a parameter name ornumber, and the configuration module to select the parametercorresponding to the retrieved parameter name or number. The user mayselect a parameter by speaking a parameter identifier such as a numberor parameter name. Once the parameter is selected, the user may speakthe value for the selected parameter. In this embodiment of theinvention, the user could program a network node completely using voicecommands.

[0022] In yet another embodiment of the invention, the network devicemay be configured to perform automatic selection during aninitialization or configuration process. Whenever a network device isattached to a network for the first time, the network node mayautomatically initiate a configuration process. The term “automatically”as used herein may refer to performing a function without human actionor intervention to initiate the function. In this embodiment of theinvention, the input system 200 may be configured to prompt for audibleuser input for various parameters in a predetermined sequence. The usermay also initiate the configuration process manually using the inputdevice as well.

[0023] In yet another embodiment of the invention, the input device mayinclude a knob that may be rotated to select a number from an availableset of numbers, with each number representing a parameter. In anotherembodiment of the invention, the knob may be rotated with apredetermined amount of rotation to display a parameter identifier, suchas a number or parameter name, on a display such as display 102.

[0024] Once a parameter has been selected at block 302 and a valueentered at block 304, input system 200 may send the determined value toa display, such as display 102. In this manner, a user may be able toperform a visual confirmation that the intended value was correctlyentered into input system 200. The user may indicate confirmation of thedisplayed value verbally by speaking a predefined command word or phrasesuch as “confirmed,” or manually using the activation component.

[0025] The speech recognition component may use any type of speechrecognition technology, including speech dependent and speechindependent technology. Speech dependent technology typically requiressome training to recognize speech for a particular user to account forthe user's unique speech characteristics, such as pronunciation,dialect, voice inflections, tones, tone length, and so forth. Speechindependent technology typically operates independent from a particularspeaker, and makes certain assumptions regarding speech characteristics.Depending on the set of information required for recognition by aparticular embodiment of the invention, either or both forms of speechrecognition may be appropriate. Any type of language may be implementedas part of the speech recognition component depending on a desired user.

[0026] The operation of system 100 and the flow diagram shown in FIG. 3may be better understood by way of example. In this example, a networknode may comprise a network appliance having an activation componentcomprising a button, such as button 104. Once the network appliance isconnected to the network, a user may desire to configure the networkappliance with a network address and device name, for example. Thenetwork address may be a network address for the network node beingconfigured, or another network node to communicate with the configurednetwork node such as a default gateway, next hop router, network addresstranslation (NAT) server, port address translation (PAT) server, proxyserver, virtual private network (VPN) gateway, and so forth. In thisexample, a network address parameter may correspond to one (1) press ofthe button, while a device name parameter may correspond to two (2)presses of the button. The user may select the network address parameterby pressing the button one (1) time. The configuration module of inputsystem 200 would count a single signal and understand that the userselected the network address parameter. Once the user selects thenetwork address parameter, the user may speak the numbers comprising avalue for the network address parameter, which in this example would bean IP network address of “000.000.000.000x.” If a subnet mask is needed,the configuration module may be configured to accept both a networkaddress and subnet mask for the network address parameter, or a separateparameter may be defined for the subnet mask portion of the networkaddress. Once the user speaks the numbers comprising the IP networkaddress, a microphone such as microphone 106 would received analog voicesignals and send these signals to the speech recognition component. Theanalog voice signals may be converted to digital signals prior to beingreceived by the speech recognition component. The speech recognitioncomponent may determine the numbers comprising the IP network addressfrom the digital signals using conventional speech recognitiontechniques. Once the numbers have been determined, the speechrecognition component may send the determined IP network address to theconfiguration module. The configuration module may then store thedetermined IP network address with the network address parameter in alookup table in memory. The configuration module may also send thedetermined IP network address to a display such as display 102 forconfirmation by the user. Confirmation may be determined by receiving apredetermined verbal acknowledgment such as “confirmed” from the user,or a press of the button.

[0027] Once the network address parameter is configured, the user maypress the button twice to select the device name parameter. The usercould then repeat the process described above to configure a value forthe device name parameter with a device name such as “Node 1.”

[0028] In one embodiment of the invention, the system may be capable ofcolleting the network information during system initialization. Sincesystem initialization may require several minutes, the system bios maybe modified to accept network information during this initializationperiod. This could be accomplished after the system has been givenadequate time (e.g., 1 minute) to initialize the various systemcomponents, such as the network interface cards, memory, processor andso forth, but prior to completion of the initialization process.

[0029] While certain features of the embodiments of the invention havebeen illustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the embodiments of the invention.

1. A method to enter information, comprising: selecting a parameter for a network device; receiving an analog voice signal having a value for said network parameter; determining said value from said analog voice signal; and associating said value with said parameter.
 2. The method of claim 1, wherein said selecting comprises: receiving a signal for each time a button is activated; counting a number of times said signal is received; and selecting said parameter corresponding to said number.
 3. The method of claim 1, wherein said parameter comprises one of a group comprising a network address parameter, a device name parameter, a password parameter, a control code parameter and a security code parameter.
 4. The method of claim 1, wherein said network address is an Internet Protocol address.
 5. The method of claim 1, further comprising storing said value with said parameter.
 6. The method of claim 1, further comprising sending said value and said parameter to a display.
 7. A method to provision a network appliance, comprising: selecting a parameter by counting a number of times a key is pressed; receiving voice information with a value for said parameter; retrieving said value from said voice information; displaying said retrieved value; and associating said retrieved value with said parameter.
 8. An article comprising: a storage medium; said storage medium including stored instructions that, when executed by a processor, result in selecting a parameter for a network device, receiving an analog voice signal having a value for said network parameter, determining said value from said analog voice signal, and associating said value with said parameter.
 9. The article of claim 8, wherein the stored instructions, when executed by a processor, further result in selecting said parameter by receiving a signal for each time a button is activated, counting a number of times said signal is received, and selecting said parameter corresponding to said number.
 10. The article of claim 8, wherein the stored instructions, when executed by a processor, further result in selecting a parameter from a group comprising a network address parameter, a device name parameter, a password parameter, a control code parameter and a security code parameter.
 11. The article of claim 8, wherein the stored instructions, when executed by a processor, further result in storing said value with said parameter.
 12. The article of claim 8, wherein the stored instructions, when executed by a processor, further result in sending said value and said parameter to a display.
 13. An article comprising: a storage medium; said storage medium including stored instructions that, when executed by a processor, result in provisioning a network appliance by selecting a parameter by counting a number of times a key is pressed, receiving voice information with a value for said parameter, retrieving said value from said voice information, displaying said retrieved value, and associating said retrieved value with said parameter.
 14. The article of claim 13, wherein the stored instructions, when executed by a processor, further result in storing said value with said parameter.
 15. An apparatus to enter information for a network node, comprising: an activation component to select a parameter; a speech recognition component to receive analog voice signals having a value for said parameter and retrieving said value from said analog voice signals; and a configuration component to store said retrieved value with said parameter.
 16. The apparatus of claim 15, further comprising said activation component, said speech recognition component, and said configuration component operating during a system initialization process. 